Imports System.Configuration.Provider
Imports System.IO

Public MustInherit Class ImageProvider : Inherits ProviderBase
    Private Shared _instance As ImageProvider = Nothing

    Public Sub New()

    End Sub

    Public MustOverride Function GetPhoto(ByVal photoid As String, ByVal size As Images.Enums.ImageEnumerations.PhotoSize) As Stream
    Public MustOverride Function GetPhoto(ByVal size As Images.Enums.ImageEnumerations.PhotoSize) As Stream
    Public MustOverride Function GetFirstPhoto(ByVal albumid As String, ByVal size As Images.Enums.ImageEnumerations.PhotoSize, ByVal PublicOnly As Boolean) As Stream
    Public MustOverride Function GetPhotos(ByVal AlbumID As String, ByVal PublicOnly As Boolean) As Generic.List(Of DataTypes.Photo)
    Public MustOverride Function GetPhotos(ByVal PublicOnly As Boolean) As Generic.List(Of DataTypes.Photo)
    Public MustOverride Sub AddPhoto(ByVal AlbumID As String, ByVal Caption As String, ByVal BytesOriginal() As Byte, ByVal Username As String)
    Public MustOverride Sub RemovePhoto(ByVal PhotoID As String, ByVal Username As String)
    Public MustOverride Sub EditPhoto(ByVal Caption As String, ByVal PhotoID As String, ByVal Username As String)
    Public MustOverride Function GetAlbums(ByVal PublicOnly As Boolean) As Generic.List(Of DataTypes.Album)
    Public MustOverride Sub AddAlbum(ByVal Caption As String, ByVal IsPublic As Boolean, ByVal Username As String)
    Public MustOverride Sub RemoveAlbum(ByVal AlbumID As String, ByVal Username As String)
    Public MustOverride Sub EditAlbum(ByVal Caption As String, ByVal IsPublic As Boolean, ByVal AlbumID As String, ByVal Username As String)
    Public MustOverride Function GetRandomPhoto() As Generic.List(Of DataTypes.Photo)
End Class
